﻿using Xejen.Communication.Socket.Server.Test.Hosting;
using Xejen.Hosting;
using Xejen.Logger.NLog;
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

namespace Xejen.Communication.Socket.Server.Test
{
    class Program
    {
        static async Task Main()
        {
            var loggerManager = NLogManager.Instance();
            var appHost = new ConsoleAppHost(new HostConfiguration(), loggerManager)
                .Build();

            await ExecuteAsync();

            appHost.Run();
        }

        static async Task ExecuteAsync()
        {
            // 指定监听的 IP 地址和端口
            string ipAddress = "127.0.0.1";
            int port = 8080;

            // 创建 TcpListener 实例
            TcpListener tcpListener = new TcpListener(IPAddress.Parse(ipAddress), port);

            // 启动监听
            tcpListener.Start();
            Console.WriteLine($"服务器已启动，正在监听 {ipAddress}:{port}");

            try
            {
                while (true)
                {
                    // 接受客户端连接
                    TcpClient client = await tcpListener.AcceptTcpClientAsync();

                    // 处理连接
                    _ = HandleClientAsync(client);
                }
            }
            finally
            {
                // 停止监听
                tcpListener.Stop();
            }
        }

        static async Task HandleClientAsync(TcpClient client)
        {
            try
            {
                string s = "腐败是危害党的生命力和战斗力的最大毒瘤,反腐败是最彻底的自我革命。在以习近平同志为核心的党中央坚强领导下，我们党坚定不移推进反腐败斗争，不断提升不敢腐、不能腐、不想腐一体推进综合效能，不断取得更多制度性成果和激发更大治理效能。今天，党建网梳理了习近平总书记的部分相关重要论述，邀您一同学习领会。" +
"人民群众最痛恨腐败现象，我们就必须坚定不移反对腐败" +
"                    " +
"一个政党，一个政权，其前途命运取决于人心向背。人民群众反对什么、痛恨什么，我们就要坚决防范和打击。人民群众最痛恨腐败现象，我们就必须坚定不移反对腐败。" +
"——2014年9月5日，习近平在庆祝全国人民代表大会成立60周年大会上的讲话" +
"党风廉政建设永远在路上，反腐败斗争永远在路上。我们党作为百年大党，要永葆先进性和纯洁性、永葆生机活力，必须一刻不停推进党风廉政建设和反腐败斗争。" +
"——2021年1月22日，习近平在十九届中央纪委五次全会上的讲话" +
"腐败是党内各种不良因素长期积累、持续发酵的体现，反腐败就是同各种弱化党的先进性、损害党的纯洁性的病原体作斗争。这种斗争极其复杂、极其艰难，容不得丝毫退让妥协，必须始终保持正视问题的勇气和刀刃向内的坚定，坚决割除毒瘤、清除毒源、肃清流毒，以党永不变质确保红色江山永不变色。" +
"——2022年6月17日，习近平在十九届中央政治局第四十次集体学习时的讲话" +
"全面从严治党、推进反腐败斗争，必须从领导干部特别是高级干部严起" +
"各级领导干部特别是主要负责同志必须切实担负起管党治党政治责任，始终保持“赶考”的清醒，保持对“腐蚀”、“围猎”的警觉，把严的主基调长期坚持下去，以系统施治、标本兼治的理念正风肃纪反腐，不断增强党自我净化、自我完善、自我革新、自我提高能力，跳出治乱兴衰的历史周期率，引领和保障中国特色社会主义巍巍巨轮行稳致远。" +
"——2021年1月22日，习近平在十九届中央纪委五次全会上的讲话" +
"全面从严治党、推进反腐败斗争，必须从领导干部特别是高级干部严起。职位越高、权力越大，就越要有敬畏之心、越要严于律己。领导干部特别是高级干部要管好自身，还要管好家人亲戚、管好身边人身边事、管好主管分管领域风气，在营造风清气正的政治生态、形成清清爽爽的同志关系和规规矩矩的上下级关系、坚持亲清政商关系、营造向上向善的社会环境等方面带好头、尽好责。中央政治局的同志在严于律己上必须坚持最高标准，要求全党做到的要率先做到，要求全党不做的要坚决不做。" +
"——2022年6月17日，习近平在十九届中央政治局第四十次集体学习时的讲话" +
"领导干部自身硬首先要自身廉。廉，重在自觉，贵在持久，难在彻底。中央政治局的同志要带头廉洁自律，带头落实好管党治党的政治责任，抓好分管领域或主政地方的党风廉政建设，坚决同各种不正之风和腐败现象作斗争，推动形成清清爽爽的同志关系、规规矩矩的上下级关系、亲清统一的新型政商关系，当好良好政治生态和社会风气的引领者、营造者、维护者。同时，要严格管好家人亲属、管好身边人身边事，决不能让他们利用自己的权力和影响力牟取不正当利益。" +
"——2022年12月，习近平在二十届中央政治局民主生活会上的讲话" +
"坚持一体推进不敢腐、不能腐、不想腐，确保我们党永远不变质、不变色、不变味" +
"                    " +
"一体推进不敢腐、不能腐、不想腐，必须三者同时发力、同向发力、综合发力，把不敢腐的强大震慑效能、不能腐的刚性制度约束、不想腐的思想教育优势融于一体，用“全周期管理”方式，推动各项措施在政策取向上相互配合、在实施过程中相互促进、在工作成效上相得益彰。" +
"——2022年6月17日，习近平在十九届中央政治局第四十次集体学习时的讲话" +
"必须深化标本兼治、系统治理，一体推进不敢腐、不能腐、不想腐。要在不敢腐上持续加压，始终保持零容忍震慑不变、高压惩治力量常在，坚决惩治不收敛不收手、胆大妄为者，坚决查处政治问题和经济问题交织的腐败，坚决防止领导干部成为利益集团和权势团体的代言人、代理人，坚决防止政商勾连、资本向政治领域渗透等破坏政治生态和经济发展环境。要对比较突出的行业性、系统性、地域性腐败问题进行专项整治。要在不能腐上深化拓展，前移反腐关口，深化源头治理，加强重点领域监督机制改革和制度建设，健全防治腐败滋生蔓延的体制机制。要在不想腐上巩固提升，更加注重正本清源、固本培元，加强新时代廉洁文化建设，涵养求真务实、团结奋斗的时代新风。要把不敢腐、不能腐、不想腐有效贯通起来，三者同时发力、同向发力、综合发力，把不敢腐的震慑力、不能腐的约束力、不想腐的感召力结合起来。" +
"——2023年1月9日，习近平在二十届中央纪委二次全会上的讲话" +
"要坚持一体推进不敢腐、不能腐、不想腐，深化标本兼治、系统施治，持续保持惩治腐败高压态势，坚决查处政治问题和经济问题交织的腐败，坚决防止领导干部成为利益集团和权势团体的代言人、代理人，深化整治权力集中、资金密集、资源富集领域的腐败，坚决打赢反腐败斗争攻坚战持久战，确保我们党永远不变质、不变色、不变味。" +
"——2023年12月26日，习近平在纪念毛泽东同志诞辰130周年座谈会上的讲话" +
"                    " +
"往期链接：" +
"学习语丨全面推进党的自我净化自我完善自我革新自我提高" +
"学习语｜粮食安全是“国之大者”" +
"学习语丨为全面建设社会主义现代化国家、全面推进中华民族伟大复兴提供坚强思想保证、强大精神力量、有利文化条件" +
"学习语丨把外交为民牢牢扛在肩上" +
"学习语丨归根到底就是让老百姓过上更好的日子" +
"转载请注明来源：党建网微平台" +
"监制：苗遂奇" +
"审核：古丽娟 王群星" +
"责编：王 寒" +
"校对：王孟秋" +
"制作：白梦洁";
                // 获取客户端的网络流
                NetworkStream stream = client.GetStream();

                byte[] buffer = new byte[1024];
                int bytesRead;

                while ((bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length)) > 0)
                {
                    // 从客户端接收数据
                    string data = Encoding.UTF8.GetString(buffer, 0, bytesRead);
                    Console.WriteLine($"接收到客户端数据: {data}");

                    // 在这里可以进行其他处理，如向客户端发送响应等

                    // 如果需要向客户端发送响应，可以使用以下代码
                    string response = s;// "Hello from server!来了啦听啦，响应来喽！！热胖熊";
                    byte[] responseBytes = Encoding.UTF8.GetBytes(response);
                    await stream.WriteAsync(responseBytes, 0, responseBytes.Length);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"处理客户端连接时发生错误: {ex.Message}");
            }
            finally
            {
                // 关闭客户端连接
                client.Close();
            }
        }
    }
}
